阿里数据库掌门人李飞飞:下一代企业级数据库系统
2019数据技术嘉年华于11月16日在京落下了帷幕。大会历时两天,来自全国各地上千名学术精英、数据库领袖人物、数据库专家、技术爱好者在这里汇聚一堂,围绕“开源 • 智能 • 云数据 - 自主驱动发展 创新引领未来”的大会主题,共享"开源自研,云和数据,智能运维,智能业务,数据前沿,用户实践"六大主题盛宴。
在此小编为大家精心准备了“2019数据技术嘉年华——大咖演讲系列整理”,没来参会的朋友们,可以通过我们的系列报道,了解在本次大会中最新的数据行业资讯。爱好技术的朋友们不可错过哦~
摘要:如今,各种数据库的创新技术都在“无人区”进行试验,这些技术能否在企业中扎根生长并且长久存在,对于很多企业而言都是一个重大挑战。在2019数据技术嘉年华大会上,阿里巴巴集团副总裁、高级研究员、阿里云智能数据库事业部总负责人李飞飞 先生与大家分享了下一代企业级数据库系统。
以下内容根据李飞飞先生演讲视频以及PPT整理而成。
关注公众号“数据和云”,回复:2019dtc ,更多精彩ppt等你下载!(PPT还在不断更新当中,请持续关注)
2019数据技术嘉年华 李飞飞先生现场演讲
如今,上云已经成为一种趋势。而在上云的过程中,数据库则被认为是云上非常重要的一环。因为云最开始提供的是IaaS,而随着各种智能化应用的兴起,数据库就成为了从IaaS到智能化应用连接的重要一环。
目前,阿里云是中国以及整个亚太地区排名第一的云数据库服务商,全球范围阿里云排名第三。阿里云核心产品涵盖了上述的几种形态,OLTP数据库包括POLARDB,下一代实时分析的数据仓库OLAP——AnalyticDB。与此同时,阿里巴巴还有达摩院数据库实验室,这个实验室主要负责进行一些数据库领域的前沿探索,比如全链路加密数据库以及智能化数据库的探索。阿里云提供了丰富的云数据库产品,从公有云到专有云,再到今年刚推出的数据库一体机,对于各种形态的数据库产品和系统都能够提供强大的支撑。
那么,面向未来的企业级数据库的技术和产品到底应该长什么样呢?我们一起来看看。
数据库系统的演进经历了从最早的关系型数据库OLTP到半结构化,再到分析型数据库OLAP等非结构化的数据库,再发展到如今的多模数据库。
如今,数据库技术面临着很多挑战,其中之一就是Mutil-Model多模数据库系统,这一部分在业界已经有很多类似产品。对于多模而言,可以分为南向、北向,南向多模代表存储多种多样,而希望用统一的查询语言来查询来自于不同数据源的数据,其实也就是数据湖的概念。另外一种则是北向多模,数据存储一般只有一种模式,比如KV,但是却希望提供多种查询接口,比如像图、文档。以上提到的北向多模和南向多模就是多模两种不同形态。
数据库技术发展到今天,可以将其想象成一个汽车,它具有非常多的参数,它在运行过程中会跑到不同道路上,并且周围还有很多别的不同汽车。相互之间如何协调,引擎的优势如何体现出来,其实就和自动驾驶汽车非常像,因此称之为“Self-Driving Database Platform”。在这之上,阿里希望做到自感知、自决策、自恢复和自优化,这也是下一代智能化数据库的基本定义。
未来,下一代的企业级数据库一定要结合软硬件一体化的设计理念,而不能把软件和硬件隔开。只有将软硬件结合在一起,才能把系统的优势发挥出来。而一定要将软硬件结合在一起,才能更好地将数据库系统的优势发挥出来。比如NVM对传统数据库的保护机制会带来很大的冲击和改变,并且也会对内存的使用和管理造成很大的改变。而RDMA则是另外的一个例子,其使得数据库访问远程节点数据的速度非常快,这就成为了存储与计算分离技术的基础。
今天来看,业界有各种各样的数据库,可以大致分为三类,第一类是最左侧的单节点数据库,这里的DB框代表CPU+内存,可以认为是计算节点,对于单节点数据库而言,计算节点和存储节点是紧耦合在一起的。传统的单节点MySQL、PG以及商业数据库Oracle、SQL Server等都是基于这样的架构。单节点架构的优点在于开发简单、部署容易,缺点是扩展性和高可用都不好。而最右边的分布式架构,将数据进行分片并分别存在不同节点上面,它在底下挂了很多个单节点架构。分布式架构的特点是水平扩展能力特别强,当数据量变大、并发量变高的时候只需要增加节点即可。其劣势是如果要求不改动上层业务逻辑,就必须要有能力去处理分布式事务和分布式查询。
云原生架构的逻辑:云上的资源是“取之不尽,用之不竭”的,只要愿意付费,只要客户有需求,理论上可以无限扩容。而云上最大的需求就是要有非常好的弹性,当需要资源的时候,可以取之不尽,用之不竭;当不需要的时候,则可以把它全部释放掉。这里的弹性就如同大家家里的自来水管一样,需要用的时候把水龙头打开,不需要的时候就关掉。而传统线下的数据库使用方式更像是一个蓄水池,里面分配的服务器等资源是固定的,当将水位估计好之后,就只需要蓄足够多水就好了。但是在云上,则希望为用户提供弹性的使用方式,通过存储和计算分离,把分布式存储节点通过网络连起来,使得访问远程节点就跟访问本地节点一样快,使得用户无感知。并且将存储和计算分离,这样就可以进行单独弹性伸缩。
下一代的企业级数据库架构应该是将云原生架构和分布式架构结合起来的。底下的每个Shard都是云原生数据库,存储与计算分离,因此每个Shard的弹性都非常好,能力处理的并发量也都非常大。因此,对于同样的需求而言,所需要的Shard数量就会大大减少。阿里云的POLARDB分布式版数据库就将云原生能力和分布式能力完美地结合起来。
阿里云数据库不仅在云上提供服务,还会支撑整个阿里巴巴集团内部经济体的所有活动。2018年双11,在零点刚过的第一秒,阿里的数据库系统峰值增长了大概122倍,瞬间爆发,这就需要数据库具有较高的可扩展性、弹性以及高可用。
阿里巴巴在开源社区也做了大量工作,比如在MySQL社区中所做的工作也得到了社区高度认可,也拿到了社区的各种奖项。此外,在PostgreSQL上也做了大量工作,比如替代传统的统计查询方式进行优化,能够支持OLTP和OLAP一起完成混合负载任务。
接下来重点分享阿里巴巴自研数据库核心技术的理念和突破,也就是如何把前面提到的云原生和分布式架构有机、完美地结合起来。首先分享阿里自研POLARDB数据库,其架构的上层有很多个计算节点,计算节点下面有一个分布式共享存储,通过RDMA网络连接。目前,公有云上线的POLARDB版本能够做到16个计算节点,在POLARDB 1.0版本中做到了一写多读,目前不仅是国内,包括东南亚等国家都有很多案例,而且客户通过大量的测试和尝试发现,阿里云POLARDB的性能和稳定性都非常优秀,这就能够看出来阿里云数据库是非常靠谱的。对于数据库,尤其是OLTP系统而言,客户往往将自己的身家性命压在这里了。所以,POLARDB的架构非常具有竞争力。目前,1个POLARDB实例可以做到100TB的存储容量,单节点可以做到100万QPS。
具体而言,在共享存储里面实现高可用,把数据分块形成Data Chunk,每个数据分块会备份三份,通过Parallel Raft协议在分布式共享存储里实现高可用,使得用户无需担心数据丢失的问题。此外,在POLARDB 2.0版本将会实现多写多读以及跨区的高可用。POLARDB前面有一个Smart Proxy,这个Smart Proxy负责负载均衡以及读写分发等工作。
除了在架构方面的优化,POLARDB在数据库内核中也做了大量优化。其中一个是并行查询。众所周知,传统数据库如Oracle、MySQL等都是单线程查询。而今天几乎所有的CPU都是多核的,想要充分发挥这些硬件的能力,就需要数据库的引擎具有很好的并行查询能力。因此,阿里云数据库团队围绕着这一点做了大量工作,对于数据库的SQL解析器、优化器以及执行引擎全部进行了重写,可以支持多线程并行执行。对于数据库中较为典型的Group By等查询的速度提升非常有利,平均能够达到27倍的性能提升。
今年9月底,POLARDB Box高性能一体机正式发布。在10月已经有10个落地的实际案例,其中两个已经正式签约。POLARDB Box高性能一体机具有以下特点:高度兼容Oracle,虽然没有办法说100%兼容Oracle,但是能够称之为高度兼容,阿里云自己也做了超过1000多个Oracle兼容项的优化。一个盒子里面能够支持1000多个Vitual CPU,9TB内存以及120TB闪存。POLARDB Box高性能一体机也具备并行查询优化的能力,同时,也具备非常强大的时空数据查询引擎。
此外,通过阿里云数据库迁移工具ADAM和DTS以及AnalyticDB形成的一整套生态,能够让客户非常简单地把云数据库带回家。POLARDB Box高性能一体机和传统一体机有什么不同?最核心的部分是POLARDB Box高性能一体机里面的管控平台就是阿里云公共云的管控平台,也就是说POLARDB Box高性能一体机的管控是和公共云打通的,如果用户还未想好是否上云,那么可在IDC里面先使用一体机方式享受云数据库的性能,后续上云就变成无缝的过程,甚至可以采用混合云方式,一部分数据上云,一部分数据不上云,因为云上和云下的管控是打通的,对于用户而言是无缝管理的体验。
POLARDB-X分布式版能够完美地结合分布式与云原生的能力。比如在阿里巴巴集团的双11场景下一定要做分库分表,此时仅有计算分离、弹性这些还是不够的,一定要做分库分表,否则是无法支撑瞬间122倍流量峰值的。阿里云POLARDB-X在分库分表的基础之上加上了云原生的能力,这样就可以减少跨库查询概率。
除了POLARDB,阿里云在智能化OLAP方面还拥有实时交互智能数据仓库——AnalyticDB,能够支撑海量数据处理分析、向量分析等。
在数据分析领域存在大量的非结构化数据,而如今每天产生的80%数据都是非结构数据,比如照片、视频等。
那么,如何把非结构化数据在一套系统里面无缝地进行交互式分析呢?阿里云数据库团队就做了向量处理引擎,首先将非结构化数据实现向量化,在高维向量空间中进行处理。AnalyticDB中就实现了向量处理引擎,这样就可以在向量空间中把结构化数据和非结构化数据实现融合处理。
除了架构上、技术上的突破,除了云原生和分布式之外,下一代企业级数据库的另外两个核心关键词应该是智能化和安全。所谓智能化就是智能化管控云内核,这一部分在阿里巴巴内部已经落地了,阿里巴巴全网的几十万个数据库实例上面都会有Agent,去采取实时的运行状态,进行实时监控和预警。其中一部分工作是自动调整数据库Buffer的大小,这对于数据库的性能和成本具有非常大的影响。阿里云数据库能够实现在保证全网性能不发生较大变化的情况下,通过自动调整数据库Buffer的大小,平均每天可以节省内存使用成本达15%以上。
此外,云上数据安全也非常重要。传统数据库安全方法只是保证数据在传输过程中的安全以及加密,但数据真正进入数据库内核进行处理的时候还是要进行解密的,这时就会有数据泄露的风险。
针对这样的问题,阿里云数据库团队就实现了全链路加密数据库。全链路加密数据库使得数据进入数据库内核之后,依然不需要解密,而且数据库加密的密钥是客户提供的,不需要提供给云厂商。全程来讲,云厂商即使作为Root管理员也没有办法看到用户的数据。
数据上云的第一步一定是寻找到一个非常好的上云高速公路。阿里云数据库团队实现了数据传输服务DTS,其能够将不同源端数据库迁移到目标数据库,这里涉及的核心技术挑战就是如何在复杂的网络以及部署环境下实现不同源端和目标端的用户数据迁移。数据传输服务DTS就是阿里云数据库所实现的比较有影响的产品。
下图展示的是整个阿里云数据库的布局情况。阿里云希望拥抱开放生态,携手客户与开发者一同成长。阿里云希望能基于自身的两个核心的数据库自研产品POLARDB和AnalyticDB以及上述提到的数据传输工具DTS等共同打造具有中国特色的数据库生态。所有的数据库系统不一定要开源,但一定要拥抱一个开放的标准生态,以此来避免从一个封闭系统走向另外一个封闭系统。
扩展阅读
数据和云
ID:OraNews
如有收获,请划至底部,点击“在看”,谢谢!
资源下载
关注公众号:数据和云(OraNews)回复关键字获取
help,30万+下载的完整菜单栏
2019DTCC,数据库大会PPT
2018DTCC , 数据库大会PPT
2018DTC,2018 DTC 大会 PPT
ENMOBK,《Oracle性能优化与诊断案例》
DBALIFE,“DBA 的一天”海报
DBA04,DBA 手记4 电子书
122ARCH,Oracle 12.2体系结构图
2018OOW,Oracle OpenWorld 资料
云和恩墨Bethune X企业版,集监控、巡检、安全于一身,你的专属数据库实时监控和智能巡检平台,漂亮的不像实力派,你值得拥有!
云和恩墨zData一体机现已发布超融合版本和精简版,支持各种简化场景部署,零数据丢失备份一体机ZDBM也已发布,欢迎关注。
云和恩墨大讲堂 | 一个分享交流的地方
长按,识别二维码,加入万人交流社群
请备注:云和恩墨大讲堂